#include "login.h"
#include "ui_login.h"
#include<QIcon>
#include <QToolButton>
#include"widget.h"
#include<QList>
#include<QMessageBox>

Login::Login(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Login)
{
    ui->setupUi(this);

    this->setWindowIcon(QIcon(":/images/QQ.png"));
    this->setWindowTitle("QQ");

    QList<QString> nameList;
    nameList << "艾伦" << "girl" << "ASCicc" << "Alice" <<"jone" << "Yang" << "Liu" <<"QingS" <<"Shiyuan";

    QString pictureName = "picture";

    QSize iconSize(100, 100);

    // 由于用的是和视频不一样的文件图片，所以这里图片的大小设置做了一些该更改，具体更改为手动设置了图片大小，视频中的设置方法貌似只能原图大小原图展示。

    // 原视频中 up 是在创建了各个登录按钮头像之后再另外写一个 for 循环建立按钮的点击逻辑，我这里改为，创建按钮时候直接一个个按钮立刻建立了连接
    // 你别管规范不规范，反正我已经这样写了。如何，ui 界面的空间命名也和原视频有出入

    // 这里再附上原视频连接
    // 【QT实现群聊聊天系统-哔哩哔哩】 https://b23.tv/aL5YnGH

    // 文档控件命名
    /*
    聊天记录显示框 messageWidget
    输入框 textEdit
    右侧的用户表显示 tableWidget
    字体选择 fontComboBox
    字号选择 fontComboBox
    加粗 overstrikingBtn
    倾斜 inclineBtn
    下划线 underlineBtn
    颜色 colorBtn
    保存 saveBtn
    清空 clearBtn
    发送 sendBtn
    在线人数 olineNumLabel
    退出 exitBtn
    */


    for(int i = 0; i < 9; ++i){
        QToolButton *btn = new QToolButton(this);

        btn->setIcon(QPixmap(QString(":/images/%1%2.png").arg(pictureName).arg(i + 1)));
        btn->setIconSize(iconSize);

        // btn->setIconSize(QPixmap(":/images/picture5.png").size());

        btn->setText(QString(nameList[i]));

        btn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

        // 设置为透明
        btn->setAutoRaise(true);

        ui->vlayout->addWidget(btn);

        this->IsShow.push_back(false);

        // 建立连接 点击图片登录
        connect(btn,&QToolButton::clicked,[=](){
            if(IsShow[i]){
                QMessageBox::warning(this,"警告","聊天框已经打开");
                return;
            }
            Widget* wid = new Widget(nullptr,nameList[i]);
            wid->setWindowIcon(QPixmap(QString(":/images/%1%2.png").arg(pictureName).arg(i + 1)));
            wid->setWindowTitle(nameList[i]);
            wid->show();
            IsShow[i] = true;
            // 关闭窗口 重置 IsShow
            connect(wid,&Widget::closeWidget,[=](){
                IsShow[i] = false;
            });

        });




    }


}

Login::~Login()
{
    delete ui;
}
